package com.abvnet.project.water.project.service;

import com.abvnet.project.water.project.domain.PieChart;
import com.abvnet.project.water.project.domain.ProjectInfo;
import com.abvnet.project.water.project.domain.RateBar;

import java.util.List;

/**
 * 项目 服务层
 * 
 * @author duj
 * @date 2019-07-02
 */
public interface IProjectInfoService {
	/**
     * 查询项目信息
     * 
     * @param projectId 项目ID
     * @return 项目信息
     */
	ProjectInfo selectProjectInfoById(Long projectId);

    ProjectInfo selectDiagnosisByProjectId(Long projectId);

    ProjectInfo selectSummaryByProjectId(Long projectId);

    ProjectInfo selectProgressCodeById(Long projectId);

	/**
     * 查询项目列表
     * 
     * @param projectInfo 项目信息
     * @return 项目集合
     */
	List<ProjectInfo> selectProjectInfoList(ProjectInfo projectInfo);

    List<ProjectInfo> selectCustomerProjectInfoList(ProjectInfo projectInfo);

    List<ProjectInfo> selectListForApi(ProjectInfo projectInfo);

    List<ProjectInfo> selectMapList();

    List<PieChart> selectAreaList();

    List<PieChart> selectIndustryList();

    RateBar selectRepRateList();

    List<ProjectInfo> selectProjectListByPlanId(Long planId);

    List<ProjectInfo> selectUnProjectListByPlanId(Long planId);
	
	/**
     * 新增项目
     * 
     * @param projectInfo 项目信息
     * @return 结果
     */
	int insertProjectInfo(ProjectInfo projectInfo);

    /**
     * 从手机端新增项目
     *
     * @param projectInfo 项目信息
     * @return 结果
     */
    int insertProjectInfoForApp(ProjectInfo projectInfo);
	
	/**
     * 修改项目
     * 
     * @param projectInfo 项目信息
     * @return 结果
     */
	int updateProjectInfo(ProjectInfo projectInfo);

    int updateProjectInfoForApi(ProjectInfo projectInfo);
		
	/**
     * 删除项目信息
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
	public int deleteProjectInfoByIds(String ids);
	
}
